package gov.tax.rti.base.util;

import gov.tax.rti.core.util.SecurityContext;

import org.apache.commons.lang.StringUtils;

import com.bstek.dorado.web.DoradoContext;

/**
 * 功能ID工具类
 * 
 * @since 2013年11月6日
 * @author steven.zheng
 * @version 1.00 2013年11月6日
 */
public class FunctionIdUtil {
	
	/**
	 * 功能ID在context.Attribute中的名称
	 */
	public static final String RTI_FUNCTIONID_KEY = "rti.fnId";
	
	/**
	 * 尝试在context中找到功能ID，并初期化到SecurityContext.currentFnId
	 * @param context
	 * @since 2013年11月6日
	 * @author steven.zheng
	 * @version 1.00 2013年11月6日
	 */
	public static void initFnId(DoradoContext context) {
		if(StringUtils.isEmpty(SecurityContext.getCurrentFnId())){
			Object value = context.getAttribute(DoradoContext.VIEW, RTI_FUNCTIONID_KEY);
			if(value != null && value instanceof String){
				SecurityContext.setFnId((String)value);
			}else{
				value = context.getAttribute(DoradoContext.REQUEST, SecurityContext.FUNCTION_KEY);
				if(value != null && value instanceof String){
					SecurityContext.setFnId((String)value);
				}/*else{
					value = context.getAttachedRequest().getParameter(SecurityContext.FUNCTION_KEY);
					if(value != null && value instanceof String){
						SecurityContext.setFnId((String)value);
					}
				}*/
			}
		}
	}

}
